<!DOCTYPE html>

































































<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.ico" />
<title>Android Developer Tools | Android Developers</title>
<link href="../../../assets/android-developer-docs-devguide.css" rel="stylesheet" type="text/css" />
<script src="../../../assets/search_autocomplete.js" type="text/javascript"></script>
<script src="../../../assets/jquery-resizable.min.js" type="text/javascript"></script>
<script src="../../../assets/android-developer-docs.js" type="text/javascript"></script>
<script src="../../../assets/prettify.js" type="text/javascript"></script>
<script type="text/javascript">
  setToRoot("../../../");
</script>
<noscript>
  <style type="text/css">
    html,body{overflow:auto;}
    #body-content{position:relative; top:0;}
    #doc-content{overflow:visible;border-left:3px solid #666;}
    #side-nav{padding:0;}
    #side-nav .toggle-list ul {display:block;}
    #resize-packages-nav{border-bottom:3px solid #666;}
  </style>
</noscript>
</head>
<body class="gc-documentation">

  <div id="header">
      <div id="headerLeft">
          <a href="../../../index.html" tabindex="-1"><img
              src="../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
          <ul id="header-tabs" class="guide">
    
	<li id="home-link"><a href="../../../offline.html">
	
		<span class="en">Home</span>
		<span style="display:none" class="de">Startseite</span>
		<span style="display:none" class="es"></span>
		<span style="display:none" class="fr"></span>
		<span style="display:none" class="it"></span>
		<span style="display:none" class="ja">ホーム</span>
		<span style="display:none" class="zh-CN">主页</span>
		<span style="display:none" class="zh-TW">首頁</span>
	
	</a></li>
	<li id="sdk-link"><a href="../../../sdk/index.html">
		<span class="en">SDK</span>
	</a></li>
	<li id="guide-link"><a href="../../../guide/index.html" onClick="return loadLast('guide')">
	
		<span class="en">Dev Guide</span>
		<span style="display:none" class="de">Handbuch</span>
		<span style="display:none" class="es">Guía</span>
		<span style="display:none" class="fr">Guide</span>
		<span style="display:none" class="it">Guida</span>
		<span style="display:none" class="ja">開発ガイド</span>
		<span style="display:none" class="zh-CN">开发人员指南</span>
		<span style="display:none" class="zh-TW">開發指南</span>
	
	</a></li>
	<li id="reference-link"><a href="../../../reference/packages.html" onClick="return loadLast('reference')">
	
		<span class="en">Reference</span>
		<span style="display:none" class="de">Referenz</span>
		<span style="display:none" class="es">Referencia</span>
		<span style="display:none" class="fr">Référence</span>
		<span style="display:none" class="it">Riferimento</span>
		<span style="display:none" class="ja">リファレンス</span>
		<span style="display:none" class="zh-CN">参考</span>
		<span style="display:none" class="zh-TW">參考資料</span>
	
	</a></li>
	<li id="resources-link"><a href="../../../resources/index.html" onClick="return loadLast('resources')">
	
		<span class="en">Resources</span>
		<span style="display:none" class="de"></span>
		<span style="display:none" class="es"></span>
		<span style="display:none" class="fr"></span>
		<span style="display:none" class="it"></span>
    		<span style="display:none" class="ja"></span>
		<span style="display:none" class="zh-CN"></span>
		<span style="display:none" class="zh-TW"></span>
	
	</a></li>
	<li id="videos-link"><a href="../../../videos/index.html" onClick="return loadLast('videos')">
	
		<span class="en">Videos</span>
		<span style="display:none" class="de"></span>
		<span style="display:none" class="es"></span>
		<span style="display:none" class="fr"></span>
		<span style="display:none" class="it"></span>
		<span style="display:none" class="ja">ビデオ</span>
		<span style="display:none" class="zh-CN"></span>
		<span style="display:none" class="zh-TW"></span>
	
	</a></li>
	<li><a href="http://android-developers.blogspot.com" onClick="return requestAppendHL(this.href)">
	
		<span class="en">Blog</span>
		<span style="display:none" class="de"></span>
		<span style="display:none" class="es"></span>
		<span style="display:none" class="fr"></span>
		<span style="display:none" class="it"></span>
		<span style="display:none" class="ja">ブログ</span>
		<span style="display:none" class="zh-CN">博客</span>
		<span style="display:none" class="zh-TW">網誌</span>
	
	</a></li>


     
</ul>
     
      </div>
      <div id="headerRight">
          <div id="headerLinks">
          
          <a href="http://www.android.com">Android.com</a>
          </div>
  <div id="search" >
      <div id="searchForm">
          <form accept-charset="utf-8" class="gsc-search-box" 
                onsubmit="return submit_search()">
            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
                <tr>
                  <td class="gsc-input">
                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off"
                      title="search developer docs" name="q"
                      value="search developer docs"
                      onFocus="search_focus_changed(this, true)"
                      onBlur="search_focus_changed(this, false)"
                      onkeydown="return search_changed(event, true, '../../../')"
                      onkeyup="return search_changed(event, false, '../../../')" />
                  <div id="search_filtered_div" class="no-display">
                      <table id="search_filtered" cellspacing=0>
                      </table>
                  </div>
                  </td>
                  <td class="gsc-search-button">
                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
                  </td>
                  <td class="gsc-clear-button">
                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
                  </td>
                </tr></tbody>
              </table>
          </form>
      </div><!-- searchForm -->
  </div><!-- search -->
      </div><!-- headerRight -->
      <script type="text/javascript">
        <!--  
        changeTabLang(getLangPref());
        //-->
      </script>
  </div><!-- header -->

  <div class="g-section g-tpl-240" id="body-content">
    <div class="g-unit g-first" id="side-nav">
      <div id="devdoc-nav">
<ul>

  <li>
    <h2><span class="en">Android Basics</span>
        <span class="de" style="display:none">Einführung in Android</span>
        <span class="es" style="display:none">Información básica sobre Android</span>
        <span class="fr" style="display:none">Présentation d'Android</span>
        <span class="it" style="display:none">Nozioni di base su Android</span>
        <span class="ja" style="display:none">Android の基本</span>
        <span class="zh-CN" style="display:none">Android 基础知识</span>
        <span class="zh-TW" style="display:none">Android 簡介</span>
    </h2>
    <ul>
      <li><a href="../../../guide/basics/what-is-android.html">
        <span class="en">What Is Android?</span>
        <span class="de" style="display:none">Was ist Android?</span>
        <span class="es" style="display:none">¿Qué es Android?</span>
        <span class="fr" style="display:none">Qu'est-ce qu'Android&nbsp;?</span>
        <span class="it" style="display:none">Che cos'è Android?</span>
        <span class="ja" style="display:none">Android とは</span>
        <span class="zh-CN" style="display:none">Android 是什么？</span>
        <span class="zh-TW" style="display:none">什麼是 Android？</span>
          </a></li>
      <li><a href="../../../guide/topics/fundamentals.html">
        <span class="en">Application Fundamentals</span>
        <span class="de" style="display:none">Anwendungsgrundlagen</span>
        <span class="es" style="display:none">Fundamentos de las aplicaciones</span>
        <span class="fr" style="display:none">Principes de base des applications</span>
        <span class="it" style="display:none">Concetti fondamentali sulle applicazioni</span>
        <span class="ja" style="display:none">開発の基礎</span>
        <span class="zh-CN" style="display:none">应用程序基础</span>
        <span class="zh-TW" style="display:none">應用程式基本原理</span>
      </a></li>

  <!--  <li><a style="color:gray;">The Android SDK</a></li> -->
  <!--  <li><a style="color:gray;">Walkthrough for Developers</a></li> -->
      <!-- quick overview of what it's like to develop on Android -->
    </ul>
  </li>

  <li>
    <h2>
      <span class="en">Framework Topics</span>
      <span class="de" style="display:none">Framework-Themen</span>
      <span class="es" style="display:none">Temas sobre el framework</span>
      <span class="fr" style="display:none">Thèmes relatifs au framework</span>
      <span class="it" style="display:none">Argomenti relativi al framework</span>
      <span class="ja" style="display:none">フレームワーク トピック</span>
      <span class="zh-CN" style="display:none">框架主题</span>
      <span class="zh-TW" style="display:none">架構主題</span>
    </h2>
    <ul>
      <li class="toggle-list">
        <div><a href="../../../guide/topics/fundamentals/activities.html">
          <span class="en">Activities</span>
        </a></div>
        <ul>
          <li><a href="../../../guide/topics/fundamentals/fragments.html">
            <span class="en">Fragments</span>
          </a></li>
          <li><a href="../../../guide/topics/fundamentals/loaders.html">
            <span class="en">Loaders</span>
          </a></li>
          <li><a href="../../../guide/topics/fundamentals/tasks-and-back-stack.html">
            <span class="en">Tasks and Back Stack</span></a></li>
        </ul>
      </li>
      <li class="toggle-list">
        <div><a href="../../../guide/topics/fundamentals/services.html">
          <span class="en">Services</span>
        </a></div>
        <ul>
          <li><a href="../../../guide/topics/fundamentals/bound-services.html">
            <span class="en">Bound Services</span>
          </a></li>
        </ul>
      </li>
      <li><a href="../../../guide/topics/providers/content-providers.html">
            <span class="en">Content Providers</span>
          </a></li>
      <li><a href="../../../guide/topics/intents/intents-filters.html">
            <span class="en">Intents and Intent Filters</span>
          </a></li>
      <li><a href="../../../guide/topics/fundamentals/processes-and-threads.html">
            <span class="en">Processes and Threads</span>
          </a></li>
    </ul>


    <ul>
      <li class="toggle-list">
        <div><a href="../../../guide/topics/ui/index.html">
            <span class="en">User Interface</span>
          </a></div>
        <ul>
          <li><a href="../../../guide/topics/ui/declaring-layout.html">
               <span class="en">XML Layouts</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/ui-events.html">
                <span class="en">Input Events</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/menus.html">
               <span class="en">Menus</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/actionbar.html">
               <span class="en">Action Bar</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/dialogs.html">
                <span class="en">Dialogs</span>
              </a></li>
          <li class="toggle-list">
            <div><a href="../../../guide/topics/ui/notifiers/index.html">
                <span class="en">Notifications</span>
            </a></div>
            <ul>
              <li><a href="../../../guide/topics/ui/notifiers/toasts.html">
                <span class="en">Toast Notifications</span>
              </a></li>
              <li><a href="../../../guide/topics/ui/notifiers/notifications.html">
                <span class="en">Status Bar Notifications</span>
              </a></li>
            </ul>
          </li>
          <li><a href="../../../guide/topics/ui/drag-drop.html">
                <span class="en">Drag and Drop</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/themes.html">
                <span class="en">Styles and Themes</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/custom-components.html">
                <span class="en">Custom Components</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/binding.html">
                <span class="en">Binding to Data with AdapterView</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/layout-objects.html">
                <span class="en">Common Layout Objects</span>
              </a></li>
          <li><a href="../../../guide/topics/ui/how-android-draws.html">
                <span class="en">How Android Draws Views</span>
              </a></li>
        </ul>
      </li><!-- end of User Interface -->

      <li class="toggle-list">
        <div><a href="../../../guide/topics/resources/index.html">
               <span class="en">Application Resources</span>
             </a></div>
        <ul>
          <li><a href="../../../guide/topics/resources/providing-resources.html">
                <span class="en">Providing Resources</span>
              </a></li>
          <li><a href="../../../guide/topics/resources/accessing-resources.html">
                <span class="en">Accessing Resources</span>
              </a></li>
          <li><a href="../../../guide/topics/resources/runtime-changes.html">
                <span class="en">Handling Runtime Changes</span>
              </a></li>
          <li><a href="../../../guide/topics/resources/localization.html">
                <span class="en">Localization</span>
              </a></li>
          <li class="toggle-list">
            <div><a href="../../../guide/topics/resources/available-resources.html">
              <span class="en">Resource Types</span>
            </a></div>
            <ul>
              <li><a href="../../../guide/topics/resources/animation-resource.html">Animation</a></li>
              <li><a href="../../../guide/topics/resources/color-list-resource.html">Color State List</a></li>
              <li><a href="../../../guide/topics/resources/drawable-resource.html">Drawable</a></li>
              <li><a href="../../../guide/topics/resources/layout-resource.html">Layout</a></li>
              <li><a href="../../../guide/topics/resources/menu-resource.html">Menu</a></li>
              <li><a href="../../../guide/topics/resources/string-resource.html">String</a></li>
              <li><a href="../../../guide/topics/resources/style-resource.html">Style</a></li>
              <li><a href="../../../guide/topics/resources/more-resources.html">More Types</a></li>
            </ul>
          </li><!-- end of resource types -->
        </ul>
      </li><!-- end of app resources -->
      <li class="toggle-list">
        <div><a href="../../../guide/topics/data/data-storage.html">
            <span class="en">Data Storage</span>
          </a></div>
          <ul>
            <li><a href="../../../guide/topics/data/backup.html">
                <span class="en">Data Backup</span>
              </a>
            </li>
          </ul>
      </li>
      <li><a href="../../../guide/topics/security/security.html">
            <span class="en">Security and Permissions</span>
          </a></li>
      <li class="toggle-list">
        <div><a href="../../../guide/topics/manifest/manifest-intro.html">
          <span class="en">The AndroidManifest.xml File</span>
        </a></div>
        <ul>
          <li><a href="../../../guide/topics/manifest/action-element.html">&lt;action&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/application-element.html">&lt;application&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/category-element.html">&lt;category&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/compatible-screens-element.html">&lt;compatible-screens&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/data-element.html">&lt;data&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/instrumentation-element.html">&lt;instrumentation&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/path-permission-element.html">&lt;path-permission&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/service-element.html">&lt;service&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/supports-gl-texture-element.html">&lt;supports-gl-texture&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/supports-screens-element.html">&lt;supports-screens&gt;</a></li><!-- ##api level 4## -->
          <li><a href="../../../guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/uses-feature-element.html">&lt;uses-feature&gt;</a></li> <!-- ##api level 4## -->
          <li><a href="../../../guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></li>
          <li><a href="../../../guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></li>
        </ul>
      </li><!-- end of the manifest file -->
    </ul>

    <ul>
    <li class="toggle-list">
        <div><a href="../../../guide/topics/graphics/index.html">
            <span class="en">Graphics</span>
          </a><span class="new-child">new!</span></div>
        <ul>
          <li><a href="../../../guide/topics/graphics/2d-graphics.html">
              <span class="en">Canvas and Drawables</span></a></li>
          <li><a href="../../../guide/topics/graphics/hardware-accel.html">
              <span class="en">Hardware Acceleration</span></a>
            <span class="new">new!</span></li>
          <li><a href="../../../guide/topics/graphics/opengl.html">
              <span class="en">OpenGL</span>
            </a><span class="new">updated</span></li>
        </ul>
      </li>
      <li class="toggle-list">
        <div><a href="../../../guide/topics/graphics/animation.html">
            <span class="en">Animation</span>
          </a></div>
        <ul>
          <li><a href="../../../guide/topics/graphics/prop-animation.html">
              <span class="en">Property Animation</span></a></li>
          <li><a href="../../../guide/topics/graphics/view-animation.html">
              <span class="en">View Animation</span></a></li>
          <li><a href="../../../guide/topics/graphics/drawable-animation.html">
              <span class="en">Drawable Animation</span></a></li>
        </ul>
      </li>
      <li class="toggle-list">
	        <div><a href="../../../guide/topics/renderscript/index.html">
	            <span class="en">RenderScript</span>
	          </a></div>
	        <ul>
	          <li><a href="../../../guide/topics/renderscript/graphics.html">
	                <span class="en">Graphics</span>
	              </a>
	          </li>
	          <li><a href="../../../guide/topics/renderscript/compute.html">
	                <span class="en">Compute</span>
	              </a>
	          </li>
	        </ul>
  	  </li>

      <li class="toggle-list">
          <div><a href="../../../guide/topics/media/index.html">
            <span class="en">Multimedia and Camera</span>
          </a><span class="new">updated</span></div>
          <ul>
            <li><a href="../../../guide/topics/media/mediaplayer.html">
                  <span class="en">Media Playback</span></a>
                </li>
            <li><a href="../../../guide/topics/media/jetplayer.html">
                  <span class="en">JetPlayer</span></a>
                </li>
            <li><a href="../../../guide/topics/media/camera.html">
                  <span class="en">Camera</span></a>
                  <span class="new">new!</span>
                </li>
            <li><a href="../../../guide/topics/media/audio-capture.html">
                  <span class="en">Audio Capture</span></a>
                </li>
          </ul>
      </li>
      <li>
        <a href="../../../guide/topics/clipboard/copy-paste.html">
            <span class="en">Copy and Paste</span>
        </a></li>
  <!--<li class="toggle-list">
        <div><a style="color:gray;">Sensors</a></div>
          <ul>
            <li><a style="color:gray;">Camera</a></li>
            <li><a style="color:gray;">Compass</a></li>
            <li><a style="color:gray;">Accelerometer</a></li>
          </ul>
      </li> -->
      <li class="toggle-list">
        <div><a href="../../../guide/topics/location/index.html">
               <span class="en">Location and Maps</span>
             </a></div>
        <ul>
          <li><a href="../../../guide/topics/location/obtaining-user-location.html">
                <span class="en">Obtaining User Location</span>
              </a></li>
        </ul>
      </li>
  <!--<li class="toggle-list">
        <div><a style="color:gray;">Wireless Controls</a></div>
          <ul>
            <li><a style="color:gray;">Wi-Fi</a></li>
          </ul>
      </li> -->
  <!--<li><a style="color:gray;">Localization</a></li>  -->
      <li><a href="../../../guide/topics/appwidgets/index.html">
            <span class="en">App Widgets</span></a>
          </li>
      <li><a href="../../../guide/topics/wireless/bluetooth.html">
            <span class="en">Bluetooth</span></a>
          </li>
      <li><a href="../../../guide/topics/nfc/index.html">
            <span class="en">Near Field Communication</span>
          </a></li>
      <li class="toggle-list">
          <div><a href="../../../guide/topics/usb/index.html">
            <span class="en">USB</span></a>
          </div>
            <ul>
              <li><a href="../../../guide/topics/usb/accessory.html">Accessory</a></li>
              <li><a href="../../../guide/topics/usb/host.html">Host</a></li>
              <li><a href="../../../guide/topics/usb/adk.html">Open Accessory Dev Kit</a></li>
            </ul>
          </li>

       <li><a href="../../../guide/topics/network/sip.html">
            <span class="en">Session Initiation Protocol</span>
          </a></li>
      <li class="toggle-list">
        <div><a href="../../../guide/topics/search/index.html">
            <span class="en">Search</span>
          </a></div>
          <ul>
            <li><a href="../../../guide/topics/search/search-dialog.html">Creating a Search Interface</a></li>
            <li><a href="../../../guide/topics/search/adding-recent-query-suggestions.html">Adding Recent Query Suggestions</a></li>
            <li><a href="../../../guide/topics/search/adding-custom-suggestions.html">Adding Custom Suggestions</a></li>
            <li><a href="../../../guide/topics/search/searchable-config.html">Searchable Configuration</a></li>
          </ul>
      </li>
      <li><a href="../../../guide/topics/admin/device-admin.html">
            <span class="en">Device Administration</span></a>
      </li>
      <li class="toggle-list">
           <div>
                <a href="../../../guide/topics/testing/index.html">
                   <span class="en">Testing</span>
               </a>
           </div>
           <ul>
              <li>
                <a href="../../../guide/topics/testing/testing_android.html">
                <span class="en">Testing Fundamentals</span></a>
              </li>
              <li>
                <a href="../../../guide/topics/testing/activity_testing.html">
                <span class="en">Activity Testing</span></a>
              </li>
              <li>
                <a href="../../../guide/topics/testing/contentprovider_testing.html">
                <span class="en">Content Provider Testing</span></a>
              </li>
              <li>
                <a href="../../../guide/topics/testing/service_testing.html">
                <span class="en">Service Testing</span></a>
              </li>
              <li>
                <a href="../../../guide/topics/testing/what_to_test.html">
                <span class="en">What To Test</span></a>
              </li>
           </ul>
      </li>
    </ul>
  </li>

  <li>
    <h2>
      <span class="en">Android Market Topics</span>
    </h2>
    <ul>
      <li><a href="../../../guide/publishing/licensing.html">
          <span class="en">Application Licensing</span></a>
      </li>
      <li class="toggle-list">
        <div><a href="../../../guide/market/billing/index.html">
            <span class="en">In-app Billing</span></a>
        </div>
        <ul>
          <li><a href="../../../guide/market/billing/billing_overview.html">
              <span class="en">In-app Billing Overview</span></a>
          </li>
          <li><a href="../../../guide/market/billing/billing_integrate.html">
              <span class="en">Implementing In-app Billing</span></a>
          </li>
          <li><a href="../../../guide/market/billing/billing_best_practices.html">
              <span class="en">Security and Design</span></a>
          </li>
          <li><a href="../../../guide/market/billing/billing_testing.html">
              <span class="en">Testing In-app Billing</span></a>
          </li>
          <li><a href="../../../guide/market/billing/billing_admin.html">
              <span class="en">Administering In-app Billing</span></a>
          </li>
          <li><a href="../../../guide/market/billing/billing_reference.html">
              <span class="en">In-app Billing Reference</span></a>
          </li>
        </ul>
      </li>
      <li><a href="../../../guide/appendix/market-filters.html">
          <span class="en">Market Filters</span></a>
      </li>
      <li><a href="../../../guide/market/publishing/multiple-apks.html">
          <span class="en">Multiple APK Support</span></a>
      </li>
    </ul>
  </li>


  <li>
    <h2><span class="en">Developing</span>
               <span class="de" style="display:none">Entwicklung</span>
               <span class="es" style="display:none">Desarrollo</span>
               <span class="fr" style="display:none">Développement</span>
               <span class="it" style="display:none">Sviluppo</span>
               <span class="ja" style="display:none">開発</span>
               <span class="zh-CN" style="display:none">开发</span>
               <span class="zh-TW" style="display:none">開發</span>
    </h2>
    <ul>
  <!--<li><a href="">Developing for Android</a></li>
      signing, upgrading, selecting a package name, select device profile, touch, trackball, dpad available, etc. -->
      <li>
        <a href="../../../guide/developing/index.html">
        <span class="en">Introduction</span></a>
      </li>

      <li class="toggle-list">
        <div>
           <a href="../../../guide/developing/devices/index.html">
                <span class="en">Managing Virtual Devices</span>
            </a>
        </div>
        <ul>
          <li>
            <a href="../../../guide/developing/devices/managing-avds.html">
              <span class="en">With AVD Manager</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/devices/managing-avds-cmdline.html">
              <span class="en">From the Command Line</span>
            </a>
          </li>
          <li>
           <a href="../../../guide/developing/devices/emulator.html">
                <span class="en">Using the Android Emulator</span>
            </a>
          </li>
        </ul>
      </li>
      <li>
        <a href="../../../guide/developing/device.html">
          <span class="en">Using Hardware Devices</span>
        </a>
      </li>

      <li class="toggle-list">
        <div>
          <a href="../../../guide/developing/projects/index.html">
            <span class="en">Managing Projects</span>
          </a>
        </div>
        <ul>
          <li>
            <a href="../../../guide/developing/projects/projects-eclipse.html">
              <span class="en">From Eclipse with ADT</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/projects/projects-cmdline.html">
                <span class="en">From the Command Line</span>
            </a>
          </li>
        </ul>
      </li>

      <li class="toggle-list">
        <div>
          <a href="../../../guide/developing/building/index.html">
            <span class="en">Building and Running</span>
          </a>
        </div>
        <ul>
          <li><a href="../../../guide/developing/building/building-eclipse.html">
            <span class="en">From Eclipse with ADT</span>
          </a></li>
          <li><a href="../../../guide/developing/building/building-cmdline.html">
            <span class="en">From the Command Line</span></a></li>
        </ul>
      </li>

      <li class="toggle-list">
        <div>
          <a href="../../../guide/developing/debugging/index.html">
            <span class="en">Debugging</span>
          </a>
        </div>
        <ul>
          <li>
            <a href="../../../guide/developing/debugging/debugging-projects.html">
                <span class="en">From Eclipse with ADT</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/debugging/debugging-projects-cmdline.html">
                <span class="en">From Other IDEs</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/debugging/ddms.html">
              <span class="en">Using DDMS</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/debugging/debugging-log.html">
                <span class="en">Reading and Writing Logs</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/debugging/debugging-ui.html">
                <span class="en">Debugging and Profiling UIs</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/debugging/debugging-tracing.html">
                <span class="en">Profiling with Traceview and dmtracedump</span>
            </a>
          </li>
          <li>
            <a href="../../../guide/developing/debugging/debugging-devtools.html">
                <span class="en">Using the Dev Tools App</span>
            </a>
          </li>
        </ul>
      </li>

      <li class="toggle-list">
           <div>
                <a href="../../../guide/developing/testing/index.html">
                   <span class="en">Testing</span>
               </a>
           </div>
           <ul>
              <li>
                <a href="../../../guide/developing/testing/testing_eclipse.html">
                  <span class="en">From Eclipse with ADT</span>
                </a>
              </li>

              <li>
                <a href="../../../guide/developing/testing/testing_otheride.html">
                  <span class="en">From Other IDEs</span>
                </a>
              </li>
           </ul>
         </li>

         <li class="toggle-list">
        <div><a href="../../../guide/developing/tools/index.html">
            <span class="en">Tools</span>
          </a></div>
        <ul>
          <li><a href="../../../guide/developing/tools/adb.html">adb</a></li>
          <li><a href="../../../guide/developing/tools/adt.html">ADT</a></li>
          <li><a href="../../../guide/developing/tools/android.html">android</a></li>
          <li><a href="../../../guide/developing/tools/bmgr.html">bmgr</a>
          <li><a href="../../../guide/developing/tools/dmtracedump.html">dmtracedump</a></li>
          <li><a href="../../../guide/developing/tools/draw9patch.html">Draw
          9-Patch</a></li>
          <li><a href="../../../guide/developing/tools/emulator.html">Emulator</a></li>
          <li><a href="../../../guide/developing/tools/etc1tool.html">etc1tool</a></li>
          <li><a href="../../../guide/developing/tools/hierarchy-viewer.html">Hierarchy Viewer</a></li>
          <li><a href="../../../guide/developing/tools/hprof-conv.html">hprof-conv</a></li>
          <li><a href="../../../guide/developing/tools/layoutopt.html">layoutopt</a></li>
          <li><a href="../../../guide/developing/tools/logcat.html">logcat</a></li>
          <li><a href="../../../guide/developing/tools/mksdcard.html">mksdcard</a></li>
          <li><a href="../../../guide/developing/tools/monkey.html">Monkey</a></li>
          <li class="toggle-list">
            <div><a href="../../../guide/developing/tools/monkeyrunner_concepts.html">
              <span class="en">monkeyrunner</span>
            </a></div>
            <ul>
              <li><a href="../../../guide/developing/tools/MonkeyDevice.html">
                <span class="en">MonkeyDevice</span>
                </a></li>
              <li><a href="../../../guide/developing/tools/MonkeyImage.html">
                <span class="en">MonkeyImage</span>
                </a></li>
              <li><a href="../../../guide/developing/tools/MonkeyRunner.html">
                <span class="en">MonkeyRunner</span>
                </a></li>
            </ul>
          </li>
          <li><a href="../../../guide/developing/tools/proguard.html">ProGuard</a></li>
          <li><a href="../../../guide/developing/tools/adb.html#sqlite">sqlite3</a></li>
          <li><a href="../../../guide/developing/tools/traceview.html">Traceview</a></li>
          <li><a href="../../../guide/developing/tools/zipalign.html">zipalign</a></li>
        </ul>
      </li>
    </ul>
  </li>

  <li>
    <h2><span class="en">Publishing</span>
        <span class="de" style="display:none">Veröffentlichung</span>
        <span class="es" style="display:none">Publicación</span>
        <span class="fr" style="display:none">Publication</span>
        <span class="it" style="display:none">Pubblicazione</span>
        <span class="ja" style="display:none">公開</span>
        <span class="zh-CN" style="display:none">发布</span>
        <span class="zh-TW" style="display:none">發佈</span>
    </h2>
    <ul>
      <li><a href="../../../guide/publishing/app-signing.html">
            <span class="en">Signing Your Applications</span>
            <span class="de" style="display:none">Signieren Ihrer Anwendungen</span>
            <span class="es" style="display:none">Firma de aplicaciones</span>
            <span class="fr" style="display:none">Attribution de votre signature <br />à vos applications</span>
            <span class="it" style="display:none">Firma delle applicazioni</span>
            <span class="ja" style="display:none">アプリケーションへの署名</span>
            <span class="zh-CN" style="display:none">应用程序签名</span>
            <span class="zh-TW" style="display:none">簽署應用程式</span>
          </a></li>
      <li><a href="../../../guide/publishing/versioning.html">
            <span class="en">Versioning Your Applications</span>
            <span class="de" style="display:none">Versionsverwaltung für Ihre <br />Anwendungen</span>
            <span class="es" style="display:none">Versiones de las aplicaciones</span>
            <span class="fr" style="display:none">Attribution d'une version à vos applications</span>
            <span class="it" style="display:none">Controllo versioni delle applicazioni</span>
            <span class="ja" style="display:none">アプリケーションのバージョニング</span>
            <span class="zh-CN" style="display:none">应用程序版本控制</span>
            <span class="zh-TW" style="display:none">應用程式版本設定</span>
          </a></li>
      <li><a href="../../../guide/publishing/preparing.html">
            <span class="en">Preparing to Publish</span>
            <span class="de" style="display:none">Vorbereitung auf die Veröffentlichung</span>
            <span class="es" style="display:none">Publicación de aplicaciones</span>
            <span class="fr" style="display:none">Préparation à la publication</span>
            <span class="it" style="display:none">Preparativi per la pubblicazione</span>
            <span class="ja" style="display:none">公開の準備</span>
            <span class="zh-CN" style="display:none">准备发布</span>
            <span class="zh-TW" style="display:none">準備發佈</span>
          </a></li>
      <li><a href="../../../guide/publishing/publishing.html">
            <span class="en">Publishing on Android Market</span>
          </a></li>
    </ul>
  </li>

  <li>
    <h2><span class="en">Best Practices</span>
               <span class="de" style="display:none">Bewährte Verfahren</span>
               <span class="es" style="display:none">Prácticas recomendadas</span>
               <span class="fr" style="display:none">Meilleures pratiques</span>
               <span class="it" style="display:none">Best practice</span>
               <span class="ja" style="display:none">ベスト プラクティス</span>
               <span class="zh-CN" style="display:none">最佳实践</span>
               <span class="zh-TW" style="display:none">最佳實務</span>
    </h2>
    <ul>
      <li><a href="../../../guide/practices/compatibility.html">
            <span class="en">Compatibility</span>
          </a></li>
      <li class="toggle-list">
        <div><a href="../../../guide/practices/screens_support.html">
          <span class="en">Supporting Multiple Screens</span>
        </a></div>
        <ul>
          <li><a href="../../../guide/practices/screens-distribution.html">
            <span class="en">Distributing to Specific Screens</span>
          </a></li>
          <li><a href="../../../guide/practices/screen-compat-mode.html">
            <span class="en">Screen Compatibility Mode</span>
          </a></li>
          <li><a href="../../../guide/practices/screens-support-1.5.html">
            <span class="en">Strategies for Android 1.5</span>
          </a></li>
        </ul>
      </li>
      <li><a href="../../../guide/practices/optimizing-for-3.0.html">
            <span class="en">Optimizing Apps for Android 3.0</span>
          </a></li>
      <li class="toggle-list">
        <div><a href="../../../guide/practices/ui_guidelines/index.html">
               <span class="en">UI Guidelines</span>
             </a></div>
        <ul>
          <li class="toggle-list">
            <div><a href="../../../guide/practices/ui_guidelines/icon_design.html">
                   <span class="en">Icon Design <span class="new">updated</span></span>
                 </a></div>
            <ul>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_launcher.html">
                    <span class="en">Launcher Icons <span class="new">updated</span></span>
                  </a></li>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_menu.html">
                    <span class="en">Menu Icons</span>
                  </a></li>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_action_bar.html">
                    <span class="en">Action Bar Icons <span class="new">new!</span></span>
                  </a></li>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_status_bar.html">
                    <span class="en">Status Bar Icons <span class="new">updated</span></span>
                  </a></li>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_tab.html">
                    <span class="en">Tab Icons</span>
                  </a></li>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_dialog.html">
                    <span class="en">Dialog Icons</span>
                  </a></li>
              <li><a href="../../../guide/practices/ui_guidelines/icon_design_list.html">
                    <span class="en">List View Icons</span>
                  </a></li>
            </ul>
          </li>
          <li><a href="../../../guide/practices/ui_guidelines/widget_design.html">
                <span class="en">App Widget Design <span class="new">updated</span></span>
              </a></li>
          <li><a href="../../../guide/practices/ui_guidelines/activity_task_design.html">
                <span class="en">Activity and Task Design</span>
              </a></li>
          <li><a href="../../../guide/practices/ui_guidelines/menu_design.html">
                <span class="en">Menu Design</span>
              </a></li>
        </ul>
      </li>
      </ul>
      <ul>
      <li><a href="../../../guide/practices/design/accessibility.html">
            <span class="en">Designing for Accessibility</span>
          </a></li>
      <li class="toggle-list">
        <div><a href="../../../guide/practices/design/performance.html">
            <span class="en">Designing for Performance</span>
          </a></div>
        <ul>
          <li><a href="../../../guide/practices/design/jni.html">
                <span class="en">JNI Tips</span>
              </a></li>
        </ul>
      </li>
      <li><a href="../../../guide/practices/design/responsiveness.html">
            <span class="en">Designing for Responsiveness</span>
          </a></li>
      <li><a href="../../../guide/practices/design/seamlessness.html">
            <span class="en">Designing for Seamlessness</span>
          </a></li>
    </ul>
  </li>

  <li>
    <h2><span class="en">Web Applications</span>
    </h2>
    <ul>
      <li><a href="../../../guide/webapps/index.html">
            <span class="en">Web Apps Overview</span>
          </a></li>
      <li><a href="../../../guide/webapps/targeting.html">
            <span class="en">Targeting Screens from Web Apps</span>
          </a></li>
      <li><a href="../../../guide/webapps/webview.html">
            <span class="en">Building Web Apps in WebView</span>
          </a></li>
      <li><a href="../../../guide/webapps/debugging.html">
            <span class="en">Debugging Web Apps</span>
          </a></li>
      <li><a href="../../../guide/webapps/best-practices.html">
            <span class="en">Best Practices for Web Apps</span>
          </a></li>
    </ul>
  </li>

  <li>
    <h2><span class="en">Appendix</span>
               <span class="de" style="display:none">Anhang</span>
               <span class="es" style="display:none">Apéndice</span>
               <span class="fr" style="display:none">Annexes</span>
               <span class="it" style="display:none">Appendice</span>
               <span class="ja" style="display:none">付録</span>
               <span class="zh-CN" style="display:none">附录</span>
               <span class="zh-TW" style="display:none">附錄</span>
    </h2>
    <ul>
      <li><a href="../../../guide/appendix/api-levels.html">
            <span class="en">Android API Levels</span>
          </a></li>
      <li><a href="../../../guide/appendix/install-location.html">
            <span class="en">App Install Location</span>
          </a></li>
      <li><a href="../../../guide/appendix/media-formats.html">
            <span class="en">Supported Media Formats <span class="new">updated</span></span>
          </a></li>
      <li><a href="../../../guide/appendix/g-app-intents.html">
            <span class="en">Intents List: Google Apps</span>
          </a></li>
      <li><a href="../../../guide/developing/tools/aidl.html">AIDL</a></li>
      <li><a href="../../../guide/appendix/glossary.html">
            <span class="en">Glossary</span>
          </a></li>
    </ul>
  </li>

</ul>

<script type="text/javascript">
<!--
    buildToggleLists();
    changeNavLang(getLangPref());
//-->
</script>

      </div>
    </div> <!-- end side-nav -->
    <script>
      addLoadEvent(function() {
        scrollIntoView("devdoc-nav");
        });
    </script>




<div class="g-unit" id="doc-content"><a name="top"></a>

<div id="jd-header" class="guide-header">
  <span class="crumb">
    &nbsp;
    
  </span>
<h1>Android Developer Tools</h1>
</div>

  <div id="jd-content">

    <div class="jd-descr">
    <div id="qv-wrapper">
    <div id="qv">
      <h2>In this document</h2>

      <ol>
        <li><a href="#tools">SDK Tools Integration</a></li>

        <li><a href="#editors">Code Editors</a>
          <ol>
            <li><a href="#resource-linking">Resource linking enhancements</a></li>
          </ol>
        </li>

        <li><a href="#graphical-editor">Graphical Layout Editor</a>
          <ol>
            <li><a href="#canvas">Canvas and outline view</a></li>
            <li><a href="#palette">Palette</a></li>
            <li><a href="#config-chooser">Configuration chooser</a></li>
          </ol>
        </li>

        <li><a href="#refactoring">Layout Factoring Support</a></li>

      </ol>

      <h2>Related videos</h2>

      <ol>
        <li><a href="../../../videos/index.html#v=Oq05KqjXTvs">Android Developer Tools
            Google I/O Session</a>
        </li>
      </ol>

      <h2>See also</h2>

      <ol>
        <li><a href="http://tools.android.com/recent">Android Tools change blog</a></li>
      </ol>
    </div>
  </div>

  <p>ADT (Android Developer Tools) is a plugin for Eclipse that provides a suite of
  tools that are integrated with the Eclipse IDE. It offers you access to many features that help
  you develop Android applications quickly. ADT
  provides GUI access to many of the command line SDK tools as well as a UI design tool for rapid
  prototyping, designing, and building of your application's user interface.</p>

  <p>Because ADT is a plugin for Eclipse, you get the functionality of a well-established IDE,
  along with Android-specific features that are bundled with ADT. The following
  describes important features of Eclipse and ADT:</p>

  <dl>
    <dt><strong>Integrated Android project creation, building, packaging, installation, and
    debugging</strong></dt>

    <dd>ADT integrates many development workflow tasks into Eclipse, making it easy for you to
    rapidly develop and test your Android applications.</dd>

    <dt><strong>SDK Tools integration</strong></dt>

    <dd>Many of the <a href="#tools">SDK tools</a> are integrated into Eclipse's menus,
    perspectives, or as a part of background processes ran by ADT.</dd>

    <dt><strong>Java programming language and XML editors</strong></dt>

    <dd>The Java programming language editor contains common IDE features such as compile time
    syntax checking, auto-completion, and integrated documentation for the Android framework APIs.
    ADT also provides custom XML editors that let you
    edit Android-specific XML files in a form-based UI. A graphical layout editor lets you design
    user interfaces with a drag and drop interface.</dd>

    <dt><strong>Integrated documentation for Android framework APIs</strong></dt>
    <dd>You can access documentation by hovering over classes, methods, or variables.</dd>
  </dl>

  <p>You can find the most up-to-date and more detailed information about changes and new features
on the <a  href="http://tools.android.com/recent">Recent Changes</a> page at the Android  Tools
Project site.</p>

  <h2 id="tools">SDK Tools Integration</h2>

  <div class="sidebox-wrapper">
    <div class="sidebox">
      <h2>Need help designing icons?</h2>
  <p>The <a href="http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html">Android
      Asset Studio</a> is a web-based tool that lets you generate icons from existing images,
    clipart, or text. It also generates the icons with different DPIs for different screen sizes and
    types.</p>

    </div>
  </div>

  <p>Many of the tools that you can start or run from the command line are integrated into ADT.
  They include:</p>

  <ul>
    <li><a href="../../../guide/developing/debugging/debugging-tracing.html">Traceview</a>:
    Allows you to profile your program's execution
    (<strong>Window &gt; Open Perspective &gt; Traceview</strong>). </li>

    <li><a href="../../../guide/developing/tools/android.html">android</a>: Provides access to
    the Android SDK and AVD Manager. Other <code>android</code> features such as creating or
    updating projects (application and library) are integrated throughout the Eclipse IDE
    (<strong>Window &gt; Android SDK and AVD Manager</strong>). </li>

    <li><a href="../../../guide/developing/debugging/debugging-ui.html#HierarchyViewer">Hierarchy
    Viewer</a>: Allows you to visualize your application's view hierarchy to find inefficiencies
    (<strong>Window &gt; Open Perspective &gt; Hierarchy Viewer</strong>).</li>

    <li><a href="../../../guide/developing/debugging/debugging-ui.html#pixelperfect">Pixel
    Perfect</a>: Allows you to closely examine your UI to help with designing and building.
    (<strong>Window &gt; Open Perspective &gt; Pixel Perfect</strong>).</li>

    <li><a href="../../../guide/developing/debugging/ddms.html">DDMS</a>: Provides
    debugging features including: screen capturing, thread and heap information, and logcat
    (<strong>Window &gt; Open Perspective &gt; DDMS</strong>).</li>

    <li><a href="../../../guide/developing/tools/adb.html">adb</a>: Provides access to
      a device from your development system. Some features of
    <code>adb</code> are integrated into ADT such as project installation (Eclipse run menu),
    file transfer, device enumeration, and logcat (DDMS). You must access the more advanced
    features of <code>adb</code>, such as shell commands, from the command line.</li>

    <li><a href="../../../guide/developing/tools/proguard.html">ProGuard</a>: Allows code obfuscation,
    shrinking, and optimization. ADT integrates ProGuard as part of the build, if you <a href=
    "../../../guide/developing/tools/proguard.html#enabling">enable it</a>.</li>
  </ul>

<h2 id="editors">Code Editors</h2>

  <p>In addition to Eclipse's standard editor features, ADT provides custom XML editors to help
  you create and edit Android manifests, resources, menus, and layouts in a form-based or graphical
  mode. Double-clicking on an XML file in Eclipse's package explorer opens the
  appropriate XML editor.

    <div class="sidebox-wrapper">
    <div class="sidebox">
      <h2>Google I/O Session Video</h2>
      <p>View the segment on the <a href=
      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=30m50s">XML editors</a> for more
      information.</p>
    </div>
  </div>

  <p class="note"><strong>Note:</strong> You can edit Android-specific XML files (such as a layout
or manifest) in both a graphical mode and also an XML markup mode. You can switch between
these modes with the pair of tabs at the bottom of each custom XML editor.</p>

  <p>In addition, some special file types that don't have custom editors, such as drawables, animations,
  and color files offer editing enhancements such as XML tag completion.</p>

<p>ADT provides the following custom, form-based XML editors:</p>

  <dl>

    <dt><strong>Graphical Layout Editor</strong></dt>

    <dd>Edit and design your XML layout files with a drag and drop interface. The layout editor
    renders your interface as well, offering you a preview as you design your layouts. This editor
    is invoked when you open an XML file with a view declared (usually declared in
    <code>res/layout</code>. For more information, see <a href="#graphical-editor">Graphical Layout
    Editor</a>.</dd>

    <dt><strong>Android Manifest Editor</strong></dt>

    <dd>Edit Android manifests with a simple graphical interface. This editor is invoked
    when you open an <code>AndroidManifest.xml</code> file.</dd>

    <dt><strong>Menu Editor</strong></dt>

    <dd>Edit menu groups and items with a simple graphical interface. This editor is
    invoked when you open an XML file with a <code>&lt;menu&gt;</code> declared (usually located in
    the <code>res/menu</code> folder).</dd>

    <dt><strong>Resources Editor</strong></dt>

    <dd>Edit resources with a simple graphical interface. This editor is invoked when
    you open an XML file with a <code>&lt;resources&gt;</code> tag declared.</dd>

    <dt><strong>XML Resources Editor</strong></dt>

    <dd>Edit XML resources with a simple graphical interface. This editor is invoked
    when you open an XML file.</dd>
  </dl>


  <h3 id="resource-linking">Resource linking enhancements</h3>
  <p>In addition to the normal code editing features of Eclipse, ADT provides enhancements to the Android
  development experience that allow you to quickly jump to declarations of various types of resources such
  as strings or layout files. You can access these enhancements by holding down the control key and
  clicking on the following items:

      <ul>

        <li>A resource identifier, such as <code>R.id.button1</code>, jumps
        to the XML definition of the view.</li>

        <li>A declaration in the <code>R.java</code> file, such as <code>public
        static final int Button01=0x7f050000"</code>, jumps to the corresponding XML definition.</li>

        <li>An activity or service definition in your manifest, such as
        <code>&lt;activity android:name=".TestActivity"&gt;</code>, jumps to the corresponding Java class. You can
        jump from an activity definition (or service definition) into the corresponding Java class.</li>

        <li>You can jump to any value definition (e.g. <code>@string:foo</code>), regardless of
which XML file
        "foo" is defined in.</li>

        <li>Any file-based declaration, such as <code>@layout/bar</code>, opens the file.</li>

        <li>Non-XML resources, such as <code>@drawable/icon</code>, launches
        Eclipse's default application for the given file type, which in this case is an
        image.</li>

        <li><code>@android</code> namespace resources opens the resources found in
        the SDK install area.</li>

        <li>Custom views in XML layouts, such as <code>&lt;foo.bar.MyView&gt;&lt;/foo.bar.MyView&gt;</code>,
        or <code>&lt;view class="foo.bar.MyView"&gt;</code>) jump to the corresponding custom view classes.</li>

        <li>An XML attribute such as <code>@android:string/ok</code> or <code>android.R.string.id</code> in Java code
        opens the file that declares the strings. The XML tab opens when doing this, not
        the form-based editor.</li>

      </ul>

  <h2 id="graphical-editor">Graphical Layout Editor</h2>

  <p>ADT provides many features to allow you to design and build your application's user interface.
  Many of these features are in the graphical layout editor, which you can access by opening one of
  your application's XML layout files in Eclipse.
  </p>

  <p>The graphical layout editor is the main screen that you use to visually design and build your
  UI. It is split up into the following parts:</p>

  <dl>
    <dt><strong>Canvas</strong></dt>

    <dd>In the middle of the editor is the canvas. It provides the rendered view of your
    layout and supports dragging and dropping of UI widgets
    directly from the palette. You can select the platform version used to render the items in
    the canvas. Each platform version has its own look and feel, which might be the similar to or
    radically different from another platform version. The canvas renders the appropriate look
    and feel for the currently selected platform version.
    This platform version does not need to be the same as the version that your
    application targets.

    <p>The canvas also provides
    context-sensitive actions in the layout actions bar, such as adjusting layout margins and
orientation.
    The layout actions bar displays available actions depending on the selected UI element in the
    canvas.</p>
    </dd>

    <dt><strong>Outline</strong></dt>

    <dd>On the right side of the editor is the outline view. It displays a hierarchical
    view of your layout where you can do things such as reorder of views. The outline
    view exposes similar functionality as the canvas but displays your layout in an ordered
    list instead of a rendered preview.</dd>

    <dt><strong>Palette</strong></dt>

    <dd>On the left side of the editor is the palette. It provides a set of widgets that
    you can drag onto the canvas. The palette shows rendered previews of the
    widgets for easy lookup of desired UI widgets.</dd>

    <dt><strong>Configuration Chooser</strong></dt>

    <dd>At the top of the editor is the configuration chooser.
    It provides options to change a layout's rendering mode or screen type.</dd>
  </dl>

  <img src="../../../images/layout_editor.png" alt="graphical layout editor screenshot"
  height="500" id="layout-editor" name="layout-editor">

  <p class="img-caption"><strong>Figure 1.</strong> Graphical layout editor</p>

  <h3 id="canvas">Canvas and outline view</h3>

  <div class="sidebox-wrapper">
    <div class="sidebox">
      <h2>Google I/O Session Video</h2>

      <p>View the segment on the <a href=
      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=7m16s">canvas and outline view</a> and the
      <a href="http://www.youtube.com/watch?v=Oq05KqjXTvs#t=11m43s">layout actions bar</a>
      for more information.
      </p>
    </div>
  </div>

  <p>The canvas is the area where you can drag and drop UI widgets from the palette to design your
  layout. The canvas offers a rendered preview of your layout depending on factors such as the
  selected platform version, screen orientation, and currently selected theme that you specify in
  the <a href="#configuration-chooser">configuration chooser</a>. You can also drag and drop
  items into the outline view, which displays your layout in a hierarchical list. The outline view
  exposes much of the same functionality as the canvas but offers another method of organization
  that is beneficial for ordering and quickly selecting items. When you right-click a specific item
  in the canvas or outline view, you can access a context-sensitive menu that lets you modify the
  following attributes of the layout or view:</p>

  <dl>
    <dt><strong>View and layout properties</strong></dt>

    <dd>
      When you right-click a view or layout in the canvas or outline view, it brings up a
      context-sensitive menu that lets you set things such as:

      <ul>
        <li>ID of the view or layout</li>

        <li>Text of the view</li>

        <li>Layout width</li>

        <li>Layout height</li>

        <li>Properties such as alpha or clickable</li>
      </ul>
    </dd>

    <dt><strong>Animation preview and creation</strong></dt>

    <dd>
      If your layout or view is animated, you can preview the animation directly in the canvas
      (when you select Android 3.0 or later as the platform version in the configuration chooser).
      Right-click an item in the canvas and select <strong>Play Animation</strong>. If
      animation is not associated with item, an option is available in the menu to create one.

      <p>View the segment on the <a href=
      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=28m30s">animation features</a> for more
      information.</p>
    </dd>

    <dt><strong>Extract as Include</strong></dt>

    <dd>You can extract parts of a current layout into its own layout file,
    which you can then include in any layout with a single line of XML. See <a href=
    "#extract-as-include">Layout Refactoring Support</a> for more information.</dd>
  </dl>

  <h4>Other canvas features</h4>

  <p>The canvas has additional features not available in the outline view:</p>

  <ul>

    <li>Edit views with the layout actions bar: The context-sensitive layout actions bar allows you to
    edit how a view is laid out in your UI. The available actions depend on the currently
    selected view and its parent layout. Some common actions include
    toggling the fill mode of the view and specifying margins. For instance, if you select a
    <code><a href="../../../reference/android/widget/Button.html">Button</a></code>
    in a <code><a href="../../../reference/android/widget/LinearLayout.html">LinearLayout</a></code>, you see actions related to the <code><a href="../../../reference/android/widget/LinearLayout.html">LinearLayout</a></code>, such as a toggle to switch
    between horizontal and vertical layout, and a toggle to control whether its children are
    aligned along their text baseline. You will also see toolbar actions to control the individual
    layout attributes of the child, such as whether the child should stretch out to match its
    parent's width and height, a dropdown action to set the child's layout gravity, a button to open
    a margin editor, and a layout weight editor.</li>

    <li>Edit a nested layout in its current context: If you are editing a layout
    that includes another layout, you can edit the included layout in the layout that included
    it.</li>

    <li>Preview drag and drop location: When you drag and drop a UI widget onto the canvas, ruler
    markers appear showing you the approximate location of the UI widget depending on the
    type of layout, such as <code><a href="../../../reference/android/widget/RelativeLayout.html">RelativeLayout</a></code> or <code><a href="../../../reference/android/widget/LinearLayout.html">LinearLayout</a></code>.</li>

    <li>Preview animations: You can preview view and layout animations when you select Android 2.1
    or later for the platform version in the configuration bar.</li>

    <li>Render layouts in real-time: Layouts are rendered as accurately as possible according to
    the platform version, including the appropriate system and action bars.</li>

    <li>Support for fragments: Fragments can be rendered in the same screen as the layout that
    includes the fragments.</li>

  </ul>

  <img src="../../../images/canvas.png" alt="screenshot of the canvas" height="553">

  <p class="img-caption"><strong>Figure 2.</strong> Canvas portion of the layout editor showing
  a rendered preview of an application</p>

  <img src=
  "../../../images/layout_outline.png" alt="screenshot of the outline view" height="185">

  <p class="img-caption"><strong>Figure 3.</strong> Outline view showing current layout's structure</p>

  <h3 id="palette">Palette</h3>

  <div class="sidebox-wrapper">
    <div class="sidebox">
      <h2>Google I/O Session Video</h2>

      <p>View the segment on the <a href=
      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=7m53s">palette</a> for more information.</p>
    </div>
  </div>

  <p>The palette contains the UI widgets that you can drag and drop onto the canvas and add to your
  layout. The pallete categorizes the widgets and shows rendered previews
  for easier lookup. The main features of the palette include:</p>

  <ul>
    <li>Different modes of rendered previews include: icons only, icons and text, tiny previews,
    small previews, and previews (rendered in real size). Previews are only available for layouts
    rendered with the latest revisions of Android 2.1 (API Level 7) or later.</li>

    <li>Custom views in your project or library projects are added under custom views
    category.</li>

    <li>Arrange UI widgets alphabetically or by category.</li>
  </ul>
  <img src="../../../images/palette.png" alt="palette screenshot" height="566">

  <p class="img-caption"><strong>Figure 4.</strong> Palette showing available UI widgets</p>

  <h3 id="config-chooser">Configuration chooser</h3>

  <div class="sidebox-wrapper">
    <div class="sidebox">
      <h2>Google I/O Session Video</h2>

      <p>View the segment on the <a href=
      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=12m51s">configuration chooser</a> for more
      information.</p>
    </div>
  </div>


  <p>The configuration chooser allows you to create and configure different configurations of
  a layout for different situations, such as one for landscape and one for portrait mode. You can
  set the following options for each configuration of a layout:
  </p>
      <ul>
        <li>Screen type combo box: Predefined screen settings for common device configurations. You
        can also create your own by selecting <strong>Custom...</strong>.</li>

        <li>Screen orientation combo box: Portrait or Landscape screen orientation.</li>

        <li>Theme combo box: Predefined themes or a custom theme that you have created.</li>

        <li>Platform combo box: Platform version used to render the canvas and palette as well as
        displaying appropriate themes.</li>

        <li>Custom layout combo boxes: The locale, dock, and time of day combo boxes let you select
        different versions of the same layout depending on the device's current state. You can
        create a new version of a layout with the <strong>Create</strong> button.</li>
      </ul>

      <img src="../../../images/layout_bar.png" alt=
  "configuration chooser screenshot" height="50" id="configuration-chooser" name="configuration chooser">

  <p class="img-caption"><strong>Figure 5.</strong> Configuration chooser</p>

  <h2 id="refactoring">Layout Refactoring Support</h2>

  <div class="sidebox-wrapper">
    <div class="sidebox">
      <h2>Google I/O Session Video</h2>

      <p>View the segment on <a href=
      "http://www.youtube.com/watch?v=Oq05KqjXTvs#t=18m00s">refactoring features</a> for a rundown
of the more important refactoring features.</p>

    </div>
  </div>

  <p>In both the graphical and XML layout editor, there are many features that help you quickly
  refactor your layouts. The following list describes the major refactoring support:</p>

  <dl>

    <dt><strong>Change layout</strong></dt>
    <dd>This lets you change the layout on the fly and re-renders the canvas for you.
    You can apply this refactoring to any layout and the layout is converted to the new type if
    possible. In many cases, the opening and closing tags of the layout's XML element are changed
    along with things such as ID attributes and their references. However, for some supported
    types, ADT attempts to preserve the layout, such as changing a <code><a href="../../../reference/android/widget/LinearLayout.html">LinearLayout</a></code> to a <code><a href="../../../reference/android/widget/RelativeLayout.html">RelativeLayout</a></code>.</dd>

    <dt><strong>Change widget</strong></dt>
    <dd>This lets you select one or more widgets and converts them to a new widget type. In
    addition to changing the element name, it also removes any
    attributes that are not supported by the new widget type and adds in any mandatory attributes
    required by the new widget type. If the current ID of a widget includes the
    current widget type in its ID (such as a <code>&lt;Button&gt;</code> widget named
    <code>"button1"</code>), then the ID is changed to match the new widget type and all
    references are updated.</dd>

    <dt id="extract-as-include"><strong>Extract as include</strong></dt>
    <dd>This lets you extract views inside of an existing layout into their own separate layout
    file. An <code>include</code> tag that points to the newly created layout file is inserted
    into the existing layout file. Right-click the view or layout and select <strong>Extract as
    Include...</strong>.</dd>

    <dt><strong>Extract string</strong></dt>
    <dd>Extract strings from either XML or Java files into their own separate resource file.</dd>

    <dt><strong>Extract style</strong></dt>
    <dd>Extract style-related attributes from a layout and define them in a new
    <code>styles.xml</code> file. You can select multiple views and this refactoring extracts all
    of the same styles into one style and assigns that style to all the views that use it.</dd>

    <dt><strong>Wrap-in container</strong></dt>
    <dd>This lets you select one or more sibling elements and wrap them in a new container. This
    can be applied to the root element as well, in which case the namespace declaration attributes
    will be transferred to the new root. This refactoring also transfers <code>layout_</code>
    attribute references to the new root, For example, suppose you have a <code><a href="../../../reference/android/widget/RelativeLayout.html">RelativeLayout</a></code>.
    If other widgets have layout constraints pointing to your widget, wrapping the widget causes
    these constraints to point to the parent instead.</dd>

    <dt><strong>Quick Assistant</strong></dt>
    <dd>Provides refactoring suggestions depending on the current context. Press
    <strong>Ctrl-1</strong> (or <strong>Cmd-1</strong> on
    Mac) in an editor, and Eclipse provides a list of possible refactorings depending on the
    context. The Quick Assistant provides fast access to all of the above refactorings, where applicable.
    For example, if you are editing an XML value and decide you want to extract it out
    as a string, place the text cursor in the string and press Ctrl-1 to see the refactoring context
    menu.</dd>
  </dl>

    </div>

  <a href="#top" style="float:right">&uarr; Go to top</a>
  
  </div>

<div id="footer">


  <div id="copyright">
    
  Except as noted, this content is licensed under <a
  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
  For details and restrictions, see the <a href="../../../license.html">
  Content License</a>.
  </div>
  <div id="build_info">
    
  Android 4.0&nbsp;r1 - 17 Oct 2011 18:17

  </div>

  <div id="footerlinks">
    
  <p>
    <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
    <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
    <a href="http://www.android.com/branding.html">Brand Guidelines</a>
  </p>
  </div>

</div> <!-- end footer -->

</div><!-- end doc-content -->

</div> <!-- end body-content --> 

<script type="text/javascript">
init(); /* initialize android-developer-docs.js */
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5831155-1");
pageTracker._trackPageview();
</script>

</body>
</html>



